package com.qm.chp07exception;

/**
 * @author wb
 * @date 2023-06-28 10:54
 * @description: 那什么情况下使用 throws 而不是 try-catch
 * “假设现在有这么一个方法 myMethod()，可能会出现 ArithmeticException 异常，也可能会出现 NullPointerException。这种情况下，可以使用 try-catch 来处理。
 * 但假设有好几个类似 myMethod() 的方法，如果为每个方法都加上 try-catch，就会显得非常繁琐。代码就会变得又臭又长，可读性就差了
 * 1）throws 关键字用于声明异常，它的作用和 try-catch 相似；而 throw 关键字用于显式的抛出异常。
 * 2）throws 关键字后面跟的是异常的名字；而 throw 关键字后面跟的是异常的对象。
 * throws ArithmeticException;
 * throw new ArithmeticException("算术异常");
 */
public class MyException4 {
    public void myMethod() {
        try {
            // 可能抛出异常
        } catch (ArithmeticException e) {
            // 算术异常
        } catch (NullPointerException e) {
            // 空指针异常
        }
    }
    public void myMethod2() {
        try {
            // 可能抛出异常
        } catch (ArithmeticException e) {
            // 算术异常
        } catch (NullPointerException e) {
            // 空指针异常
        }
    }
    public void myMethod3() {
        try {
            // 可能抛出异常
        } catch (ArithmeticException e) {
            // 算术异常
        } catch (NullPointerException e) {
            // 空指针异常
        }
    }
    public static void myMethod1() throws ArithmeticException, NullPointerException{
        // 方法签名上声明异常
    }

    public static void main(String args[]) {

    }
}
